let ReadStream = require('./ReadStream')
let WriteStream = require('./WriteStream')
let path = require('path')
// fs.createReadStream(path[, options])
// 事件： data, end
// 方法： pause, resume
// fs.createWriteStream(path[, options])
// 事件 drain
// 方法： write
/**  读的实现测试用例
 open
 123
 456
 789
 end
 close
 **/
// let rs = new ReadStream(path.join(__dirname, '../test/demo1.txt'), {
//   flags: 'r',
//   encoding: 'utf8',
//   start: 0,
//   highWaterMark: 3
// });
// rs.on('open', function () {
//   console.log("open");
// });
// rs.on('data', function (data) {
//   console.log(data);
// });
// rs.on('end', function () {
//   console.log("end");
// });
// rs.on('close', function () {
//   console.log("close");
// });


// 写流的测试用例
 let ws = new WriteStream(path.join(__dirname, '../test/demo11.txt'), {
   flags: 'w',
   encoding: 'utf8',
   highWaterMark: 3
 });
 let i = 10;

 function write() {
   let flag = true;
   while (i && flag) { // 写不下就不写了
     flag = ws.write("1", 'utf8', (function (i) {
       return function () {
         console.log(i);
       }
     })(i));
     i--;
    //  console.log(flag);
   }
 }
 write();
 ws.on('drain', () => {
   console.log("drain",i);
  //  write();
 });

// pipe的实现
// let rs = new ReadStream(path.join(__dirname, '../test/demo1.txt'), {
//   flags: 'r',
//   encoding: 'utf8',
//   highWaterMark: 3
// });
//  let ws = new WriteStream(path.join(__dirname, '../test/demo11.txt'), {
//    flags: 'w',
//    encoding: 'utf8',
//    highWaterMark: 3
//  });
// rs.pipe(ws);


